package com.quectel.core.module.schedulingapply.dto;

import com.quectel.core.module.schedulingapply.dto.vo.SchedulingTimeVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 *
 * @author zhangheng
 * @email nolan.zhang@quectel.com
 * @date 2023/07/13 19:14
 */
@Data
@Schema
public class SchedulingApplyLeaveRecordDto implements Serializable {

    /**
    * id
    */
    @Schema(description = "id")
    private Long id;

    /**
    * 租户id
    */
    @Schema(description = "租户id")
    private Long tenantId;

    /**
    * 小区id
    */
    @Schema(description = "小区id")
    private Long villageId;

    /**
    * 审批id
    */
    @Schema(description = "审批id")
    private Long applyRecordId;

    /**
    * 申请人id
    */
    @Schema(description = "申请人id")
    private Long applyDeptPersonId;

    /**
     * 假期Id
     */
    @Schema(description = "假期Id")
    private Long leaveId;
    /**
    * 假期类型
    */
    @Schema(description = "假期类型")
    private Byte leaveType;

    /**
    * 开始时间
    */
    @Schema(description = "开始时间")
    private Date startTime;

    /**
    * 结束时间
    */
    @Schema(description = "结束时间")
    private Date endTime;

    /**
     * 状态
     */
    @Schema(description = "状态")
    private Byte status;

    /**
     * 时间计算游标时间
     */
    @Schema(description = "时间计算游标时间")
    private Date calCursorTime;

    /**
    * 请假时长
    */
    @Schema(description = "请假时长")
    private BigDecimal timeLength;


    /**
     * 时长单位
     */
    @Schema(description = "时长单位")
    private Byte timeUnit;

    /**
     * 余额详情json
     */
    @Schema(description = "余额详情json")
    private String balanceDetailJson;

    /**
    * 历史余额
    */
    @Schema(description = "历史余额")
    private BigDecimal historyBalance;


    /**
     * 历史余额
     */
    @Schema(description = "历史余额")
    private Byte historyBalanceUnit;


    /************非数据库字段 start ************/
    /**
     * 时长单位
     */
    @Schema(description = "时长单位")
    private SchedulingTimeVO balanceDetail;


    /************非数据库字段 end **************/
}
